/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package sv.com.intesal.seguridad.controlador;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import sv.com.intesal.clases.Mensaje;
import sv.com.intesal.conexion.cConexion;
import sv.com.intesal.seguridad.bean.TipoMenu;
import sv.com.intesal.seguridad.sql.SQLTipoMenu;

/**
 *
 * @author ejerez
 */
public class TipoMenuControlador {

    public List<TipoMenu> fillComboBox() throws Exception {

        List<TipoMenu> lista = new ArrayList<TipoMenu>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLTipoMenu.getTipoMenus).executeQuery();

            while (rs.next()) {
                TipoMenu tm = new TipoMenu();
                tm.setCodigo_tm(rs.getInt("codigo_tm"));
                tm.setNombre_tm(rs.getString("nombre_tm"));
                lista.add(tm);
            }
            rs.close();
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public List<TipoMenu> fillGrid() throws Exception {

        List<TipoMenu> lista = new ArrayList<TipoMenu>();
        try {
            ResultSet rs = cConexion.conectar().prepareStatement(SQLTipoMenu.getTipoMenus).executeQuery();

            while (rs.next()) {
                TipoMenu tm = new TipoMenu();
                tm.setCodigo_tm(rs.getInt("codigo_tm"));
                tm.setNombre_tm(rs.getString("nombre_tm"));
                tm.setEstado_tm(rs.getString("estado_tm"));
                tm.setFiltro_estado_tm(true);
                if (tm.getEstado_tm().equals("A")) {
                    tm.setFiltro_estado_tm(false);
                }
                lista.add(tm);
            }
            rs.close();
            return lista;
        } catch (Exception e) {
            throw new Exception(e);
        }
    }

    public void completeTransaction(TipoMenu tm) throws Exception {
        try {
            PreparedStatement ps = null;
            if (tm.getCodigo_tm() == null) {
                ps = cConexion.conectar().prepareStatement(SQLTipoMenu.insert);
            } else {
                ps = cConexion.conectar().prepareStatement(SQLTipoMenu.update);
                ps.setInt(3, tm.getCodigo_tm());
            }
            ps.setString(1, tm.getNombre_tm());

            if (tm.getFiltro_estado_tm() == false) {
                ps.setString(2, "A");
            } else {
                ps.setString(2, "I");
            }

            ps.execute();


            Mensaje m = new Mensaje();
            if (tm.getCodigo_tm() == null) {
                m.messageInfo(m.getIinformation());
            } else {
                m.messageInfo(m.getImodificada());
            }
        } catch (Exception e) {
            throw new Exception(e);
        }
    }
}
